home *** CD-ROM | disk | FTP | other *** search
/ Die Ultimative Software-P…i Collection 1996 & 1997 / Die Ultimative Software-Pakete CD-ROM fur Atari Collection 1996 & 1997.iso / i / internet / software / netstsr / ip.h < prev    next >
Encoding:
C/C++ Source or Header  |  1992-02-27  |  1.6 KB  |  84 lines

  1. #ifndef _INET_IP
  2. #define _INET_IP
  3.  
  4. #ifndef _INET_PKT
  5. #include "pktdrv.h"
  6. #endif
  7.  
  8. #ifndef _INET_ICUST
  9. #include "inetcust.h"
  10. #endif
  11.  
  12. #define IP_ICMP    1        /* protocols to serve */
  13. #define IP_GGP    3
  14. #define IP_ST    5
  15. #define IP_TCP    6
  16. #define IP_UDP    17
  17.  
  18. #define MAXIP    10        /* max nr. of protocols to serve   */
  19. #define IP_NBUF    10        /* default number of packetbuffers */
  20.  
  21.  
  22. #define MAXIPSEG    1500
  23.  
  24. #ifndef INADDR
  25. #define INADDR unsigned long
  26. #endif
  27.  
  28. /* The Internet Header: */
  29. typedef struct 
  30. {
  31.     u_char    vh;                /* version, hdrlen */
  32.     u_char    tos;            /* type of service */
  33.     u_short    length;
  34.     u_short    ident;
  35.     u_short    frag;
  36.     u_char    ttl;
  37.     u_char    protocol;
  38.     u_short    chksum;
  39.     INADDR    src_inaddr;
  40.     INADDR    dst_inaddr;
  41. } IP;
  42.  
  43. typedef struct
  44. {
  45.     ETH        et;
  46.     IP        ip;
  47.     union
  48.     {
  49.         char    opt[40];
  50.         char    data[MAXIPSEG-sizeof(IP)];
  51.     }od;
  52. } IP_PACKET;
  53.  
  54. #define ip_opt    od.opt
  55. #define ip_dat    od.data
  56. #define IPPKTSIZE    ((int)sizeof(PACKET))
  57.  
  58. #define IP_VERSION    4
  59. #define IP_HDR        5
  60. #define IP_TTL        255
  61. #define IP_TOS        0
  62. #define IP_FRAG        0x8000
  63. #define ip_version(ip) (((ip)->vh >> 4) & 0xf)
  64. #define ip_hdrlen(ip)  (((ip)->vh & 0xf) << 2)
  65.  
  66. #define ip_head(pkt) ((IP *)( ((PACKET *)pkt)->pkt_data ))
  67. #define ip_data(pkt) (((char *)ip_head(pkt)) + ip_hdrlen(ip_head(pkt)))
  68.  
  69. int ip_open(int,int (*)(PACKET *,int,INADDR));
  70. int ip_close(int);
  71. int ip_init(INETCUST *);
  72. int ip_exit(void);
  73. int ip_demux(void);
  74. int ip_dudemux(IP *);
  75. int ip_send(int,PACKET *,int,INADDR);
  76. PACKET *ip_alloc(int,int);
  77. int ip_free(PACKET *);
  78. int ip_requeue(PACKET *);
  79. INADDR    ip_myaddr(void);
  80.  
  81.  
  82.  
  83.  
  84. #endif